package com.wang.interview.designmode.watcher;

import java.util.ArrayList;

/**
 * @author: wang
 * @date: 2021/8/2 10:57
 * @description: 观察者数据提供对象的抽象类
 */
public abstract class Subject<T> {


    protected ArrayList<T> list;

    public Subject() {
        this.list = new ArrayList<>();
    }

    /**
     * 注册第三方
     * @param t
     */
    protected void register(T t){
        list.add(t);
    }

    /**
     * 移除第三方
     * @param t
     */
    protected void remove(T t){
        list.remove(t);
    }

    /**
     * 通知第三方更新数据
     */
    abstract void notifyT();
}
